package models; import java.io.Serializable; import java.util.Observable; import java.util.Observer; import javax.swing.JOptionPane; public class Person implements Observer, Serializable { private static final long serialVersionUID = 1L; private int id; private String name; public Person(int id, String name) { this.name = name; this.id = id; } public int getId() { return id; } public String getName() { return name; } @Override public void update(Observable arg0, Object arg1) { Account a = (Account) arg0; Double sum = (double) arg1; if (sum > 0) JOptionPane.showMessageDialog(null, name + ", " + Double.toString(sum) + " has been deposited to your account " + a.getId()); else JOptionPane.showMessageDialog(null, name + ", " + Double.toString(-sum) + " has been withdrawn from your account " + a.getId()); } @Override public boolean equals(Object pers) { if (!(pers instanceof Person)) return false; else { Person p = (Person) pers; if (p.getId() != id) return false; if (!p.getName().equals(name)) return false; } return true; } @Override public int hashCode() { int code = 0; code += id; int nameCode = 0; for (int i = 0; i < name.length(); i++) { nameCode += name.charAt(i); } code += nameCode; return code; } }